Olen vasta aloittelija Swift-koodauksessa. Ideani on melko yksinkertainen, joka on sovellus, jossa on kaksi painiketta. Kun napsautetaan, tekstikenttä muuttaa tekstiään. Main.StoryBoardiin lisätään tekstikenttä ja kaksi painiketta. ViewController.swift-tiedostossa. Kirjoitan näin: tuoda UIKit luokka ViewController: UIViewController { @IBOutlet heikko var tekstikenttä: UITextField! @IBOutlet heikko var-painike: UIButton! @IBOutlet heikko var-painike2: UIB-painike! @IBAction func action1 (_ lähettäjä: UIButton) { textfield.text = "napsautit vain painiketta1" } @IBAction func action2 (_ lähettäjä: UIButton) { textfield.text = "napsautit juuri painiketta2" } } Sen oletetaan olevan kunnossa. Näyttöön tulee kuitenkin virhe, joka osoittaa: thread1: signaali SIGABRT tiedostossa AppDelegate.swift-rivi: luokka AppDelegate: UIResponder, UIApplicationDelegate Mikä vikaa koodissani?
2021-01-15 08:17:47
Voit ratkaista ongelman puhdistamalla ensin projektin ja rakentamalla sen sitten uudelleen. Voit puhdistaa projektin valitsemalla MenuBar: Tuote -> Puhdista Sitten voit rakentaa projektin uudelleen napsauttamalla Suorita-painiketta tavalliseen tapaan. | Saat SIGABRT-virheen aina, kun pistoke on irrotettu. Napsauta näkymän ohjainta kuvakäsikirjoituksessa ja siirry sivupaneelin liitäntöihin (nuolisymboli). Katso, onko sinulla ylimääräinen pistorasia, kopio vai ylimääräinen, jota ei ole kytketty. Jos se ei ole niin, et ehkä ole liittänyt myyntipisteitä koodiin oikein. Muista vain, että SIGABRT tapahtuu, kun yrität soittaa pistorasiaan (painike, näkymä, tekstikenttä jne.), Jota ei ole siellä. | Minulle se ei ollut myyntipiste. Olen ratkaissut ongelman siirtymällä virheeseen ja lukemalla, mitä siinä sanottiin. (Myös Noob ..) Tämä oli virhe: Ja ratkaisu oli täällä: Selaa vain ylöspäin lähdössä ja virhe paljastuu. | Yleinen syy tämän tyyppiselle virheelle on se, että olet saattanut muuttaa IBOutlet- tai IBAction-laitteesi nimen, voit yksinkertaisesti tarkistaa tämän siirtymällä lähdekoodiin. Napsauta main.storyboard-näppäimistöä ja valitse sitten avaa nimellä ja valitse sitten lähdekoodi lähdekoodi avautuu ja tarkista sitten, onko muuttamasi iboutlet- tai ibaction-nimi, jos on, valitse osa ja poista se ja luo sitten iboutlet tai ibaction uudelleen. Tämän pitäisi ratkaista ongelmasi | Minun tapauksessani en saanut virheitä vain AppDelegaten kaatumisessa ja jouduin poistamaan seuraavan vaihtoehdon valinnan: OS_ACTIVITY_MODE ja sitten sain todellisen kaatumissyyn .xib-tiedostooni Toivottavasti tämä voi auttaa sinua myös :) | Minulla oli sama ongelma. Tein painikkeen kuvakäsikirjoitukseen ja liitin sen ViewControlleriin ja poistin sitten myöhemmin painikkeen. Joten yhteys oli edelleen olemassa, mutta painike ei ollut, joten sain saman virheen kuin sinä. Korjata: Siirry yhteyden tarkastajaan (nuoli oikeassa yläkulmassa kuvakäsikirjoituksessa) ja poista käyttämättömät yhteydet. | Jos törmäät tähän Xcode 10: ssä, sinun on puhdistettava ennen rakennusta. Tai vaihda vanhaan koontijärjestelmään. Tiedosto -> Työtilan asetukset ... -> Koontijärjestelmä: Vanha koontijärjestelmä. | Minun tapauksessani ei ollut mitään lokia. Virheeni oli työntää näkymän ohjainta navigointipinoon, joka oli jo osa navigointipinoa. | Joskus se tapahtuu myös silloin, kun toiminto on suoritettava vain pääkehyksessä, joten voit korjata sen määrittämällä sen pääkehykseen seuraavasti: - DispatchQueue.main.async { koodi täällä } | Minulle tämä virhe johtui siitä, että minulla oli segmentin valmisteluvaihe, jota ei voitu soveltaa käynnissä olevaan segmenttiin. pitkä tarina: ohita funktiovalmistelut (segmentille: UIStoryboardSegue, lähettäjä: Onko mitään?) { anna gosetup = segue.destination as! Päivittää gosetup.wherefrom = päivitysrengas } Tämä tehtiin kaikille segmenteille, kun se oli vain yksi. Joten luon boolean ja asetin gosetupin sen sisälle. | Tämä on hyvin yleinen virhe ja voi tapahtua useista syistä. Yleisin on, kun kuvakäsikirjoituksen näkymän ohjaimeen kytketty IBOUTLET / IBACTION poistetaan nopeasta tiedostosta, mutta ei kuvakäsikirjoituksesta. Jos näin ei ole, selvitä virheen alaosassa olevan työkalurivin loki ja diagnosoi se. Voit käyttää keskeytyskohtia ja virheenkorjausta auttaaksesi sinua löytämään virhe. Saat lisätietoja virheen korjaamisesta käyttämällä tätä artikkelia, jonka löysin Googlesta: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode | Minun tapauksessani käytin RxSwiftia haun suorittamiseen. Olin jatkuvasti käyttänyt tietyn luokan jaettua esiintymää onNext-menetelmän sisällä, mikä todennäköisesti teki siitä pääsyn (Mutex). Varmista, että tällaisia tapauksia käsitellään huolellisesti vain, jos se on ehdottoman välttämätöntä. Minun tapauksessani käytin pari muuttujaa etukäteen tallentaakseni turvallisesti (ja peräkkäin) jaetun ilmentymän menetelmien palautusarvot, ja käytin niitä uudelleen Next-lohkossa. | Minulla oli sama ongelma. Minun tapauksessani kirjoitin tiedoston vain yli GoogleService-Info.plist tällä polulla: Alusta \ ios \ YOUR_APP_NAME \ Resurssit \ Resurssit Minun tapauksessani tiedostot olivat läsnä ilman tietoja. | Erittäin aktiivinen kysymys. Ansaitse 10 mainetta vastaamiseksi tähän kysymykseen. Maineen vaatimus auttaa suojaamaan tätä kysymystä roskapostilta ja vastaamattomuudelta. Eikö vastausta etsit? Selaa muita kysymyksiä, jotka on merkitty koodilla ios nopeasti, tai kysy oma kysymyksesi.